﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Infra.Entity;


namespace Infra.Common.DAO
{
   public class clienteDAL
    {

        public static void Salvar(PERCLIENTE cliente)
        {

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                if (cliente.CODPESSOA != 0)
                {
                    //Alterar o utilizador
                    var cli = dc.PERCLIENTEs.Single(cl => cl.CODPESSOA == cliente.CODPESSOA);
                    cli.CODPESSOA = cliente.CODPESSOA;
                    cli.cliNumero = cliente.cliNumero;
                    dc.SubmitChanges();
                }
                else
                {
                    //Gravar utilizador
                    dc.PERCLIENTEs.InsertOnSubmit(cliente);
                    dc.SubmitChanges();
                }
            }
        }


        public static void Excluir(int idCli)
        {
            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var cli = dc.PERCLIENTEs.Single(cl => cl.CODPESSOA == idCli);
                dc.PERCLIENTEs.DeleteOnSubmit(cli);
                dc.SubmitChanges();
            }
        }


        public static List<PERCLIENTE> Pesquisar(int Codigo, string cliente)
        {
            List<PERCLIENTE> ListaCliente = null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var cli = from cl in dc.PERCLIENTEs
                          where ((Codigo.Equals(0) || Codigo.Equals(cl.CODPESSOA)) &&
                          (cliente.Equals(string.Empty) || cliente.Equals(cl.cliNumero.Contains(cliente))))
                          select cl;
                ListaCliente = cli.ToList();
            }

            return ListaCliente;
        }


        public static List<PERCLIENTE> Pesquisar()
        {
            List<PERCLIENTE> ListaCliente = null;

            using (DBInfraEntityDataContext dc = new DBInfraEntityDataContext())
            {
                var cli = from cl in dc.PERCLIENTEs
                          select cl;
                ListaCliente = cli.ToList();
            }

            return ListaCliente;
        }

    }
}
